GtkCssSelector selector;
GtkCssSelectorTree *parent;
GtkCssSelectorTree *previous;
- GtkCssSelectorTree *siblings;
+ GtkCssSelectorTree *sibling;
gpointer *matches; /* pointers that we return as matches if selector matches */
};
return selector->class ? selector : NULL;
}
+static const GtkCssSelectorTree *
+gtk_css_selector_tree_get_parent (const GtkCssSelectorTree *tree)
+{
+ return tree->parent;
+}
+
+static const GtkCssSelectorTree *
+gtk_css_selector_tree_get_previous (const GtkCssSelectorTree *tree)
+{
+ return tree->previous;
+}
+
+static const GtkCssSelectorTree *
+gtk_css_selector_tree_get_sibling (const GtkCssSelectorTree *tree)
+{
+ return tree->sibling;
+}
+
/* DESCENDANT */
static void
{
matcher = &ancestor;
- for (prev = tree->previous; prev != NULL; prev = prev->siblings)
+ for (prev = gtk_css_selector_tree_get_previous (tree);
+ prev != NULL;
+ prev = gtk_css_selector_tree_get_sibling (prev))
gtk_css_selector_tree_match (prev, matcher, res);
/* any matchers are dangerous here, as we may loop forever, but
if (!_gtk_css_matcher_get_parent (&parent, matcher))
return;
- for (prev = tree->previous; prev != NULL; prev = prev->siblings)
+ for (prev = gtk_css_selector_tree_get_previous (tree);
+ prev != NULL;
+ prev = gtk_css_selector_tree_get_sibling (prev))
gtk_css_selector_tree_match (prev, &parent, res);
}
{
matcher = &previous;
- for (prev = tree->previous; prev != NULL; prev = prev->siblings)
+ for (prev = gtk_css_selector_tree_get_previous (tree);
+ prev != NULL;
+ prev = gtk_css_selector_tree_get_sibling (prev))
gtk_css_selector_tree_match (prev, matcher, res);
/* any matchers are dangerous here, as we may loop forever, but
matcher = &previous;
- for (prev = tree->previous; prev != NULL; prev = prev->siblings)
+ for (prev = gtk_css_selector_tree_get_previous (tree);
+ prev != NULL;
+ prev = gtk_css_selector_tree_get_sibling (prev))
gtk_css_selector_tree_match (prev, matcher, res);
}
gtk_css_selector_tree_found_match (tree, res);
- for (prev = tree->previous; prev != NULL; prev = prev->siblings)
+ for (prev = gtk_css_selector_tree_get_previous (tree);
+ prev != NULL;
+ prev = gtk_css_selector_tree_get_sibling (prev))
{
if (prev->selector.class == >K_CSS_SELECTOR_DESCENDANT &&
_gtk_css_matcher_has_regions (matcher))
{
- for (prev2 = prev->previous; prev2 != NULL; prev2 = prev2->siblings)
+ for (prev2 = gtk_css_selector_tree_get_previous (prev);
+ prev2 != NULL;
+ prev2 = gtk_css_selector_tree_get_sibling (prev2))
gtk_css_selector_tree_match (prev2, matcher, res);
}
gtk_css_selector_tree_found_match (tree, res);
- for (prev = tree->previous; prev != NULL; prev = prev->siblings)
+ for (prev = gtk_css_selector_tree_get_previous (tree);
+ prev != NULL;
+ prev = gtk_css_selector_tree_get_sibling (prev))
gtk_css_selector_tree_match (prev, matcher, res);
}
gtk_css_selector_tree_found_match (tree, res);
- for (prev = tree->previous; prev != NULL; prev = prev->siblings)
+ for (prev = gtk_css_selector_tree_get_previous (tree);
+ prev != NULL;
+ prev = gtk_css_selector_tree_get_sibling (prev))
{
if (prev->selector.class == >K_CSS_SELECTOR_DESCENDANT)
{
- for (prev2 = prev->previous; prev2 != NULL; prev2 = prev2->siblings)
+ for (prev2 = gtk_css_selector_tree_get_previous (prev);
+ prev2 != NULL;
+ prev2 = gtk_css_selector_tree_get_sibling (prev2))
gtk_css_selector_tree_match (prev2, matcher, res);
}
gtk_css_selector_tree_found_match (tree, res);
- for (prev = tree->previous; prev != NULL; prev = prev->siblings)
+ for (prev = gtk_css_selector_tree_get_previous (tree);
+ prev != NULL;
+ prev = gtk_css_selector_tree_get_sibling (prev))
gtk_css_selector_tree_match (prev, matcher, res);
}
gtk_css_selector_tree_found_match (tree, res);
- for (prev = tree->previous; prev != NULL; prev = prev->siblings)
+ for (prev = gtk_css_selector_tree_get_previous (tree);
+ prev != NULL;
+ prev = gtk_css_selector_tree_get_sibling (prev))
gtk_css_selector_tree_match (prev, matcher, res);
}
gtk_css_selector_tree_found_match (tree, res);
- for (prev = tree->previous; prev != NULL; prev = prev->siblings)
+ for (prev = gtk_css_selector_tree_get_previous (tree);
+ prev != NULL;
+ prev = gtk_css_selector_tree_get_sibling (prev))
gtk_css_selector_tree_match (prev, matcher, res);
}
gtk_css_selector_tree_found_match (prev, res);
- for (prev2 = prev->previous; prev2 != NULL; prev2 = prev2->siblings)
+ for (prev2 = gtk_css_selector_tree_get_previous (prev);
+ prev2 != NULL;
+ prev2 = gtk_css_selector_tree_get_sibling (prev2))
{
if (prev2->selector.class == >K_CSS_SELECTOR_DESCENDANT)
- gtk_css_selector_tree_match (prev2->previous, matcher, res);
+ gtk_css_selector_tree_match (gtk_css_selector_tree_get_previous (prev2), matcher, res);
gtk_css_selector_tree_match (prev2, matcher, res);
}
}
PositionType type;
int a, b;
- for (prev = tree->previous; prev != NULL; prev = prev->siblings)
+ for (prev = gtk_css_selector_tree_get_previous (tree);
+ prev != NULL;
+ prev = gtk_css_selector_tree_get_sibling (prev))
{
if (prev->selector.class == >K_CSS_SELECTOR_REGION)
gtk_css_selector_pseudoclass_position_tree_match_for_region (tree, prev, matcher, res);
gtk_css_selector_tree_found_match (tree, res);
- for (prev = tree->previous; prev != NULL; prev = prev->siblings)
+ for (prev = gtk_css_selector_tree_get_previous (tree); prev != NULL; prev = gtk_css_selector_tree_get_sibling (prev))
{
if (prev->selector.class != >K_CSS_SELECTOR_REGION)
gtk_css_selector_tree_match (prev, matcher, res);
while (tree)
{
change = tree->selector.class->get_change (&tree->selector, change);
- tree = tree->parent;
+ tree = gtk_css_selector_tree_get_parent (tree);
}
return change;
res = g_hash_table_new (g_direct_hash, g_direct_equal);
- for (; tree != NULL; tree = tree->siblings)
+ for (; tree != NULL;
+ tree = gtk_css_selector_tree_get_sibling (tree))
gtk_css_selector_tree_match (tree, matcher, res);
array = g_ptr_array_sized_new (g_hash_table_size (res));
tree->selector.class->print (&tree->selector, str);
len = str->len - len;
- if (tree->previous)
+ if (gtk_css_selector_tree_get_previous (tree))
{
GString *prefix2 = g_string_new (prefix);
for (i = 0; i < len; i++)
g_string_append_c (prefix2, ' ');
- _gtk_css_selector_tree_print (tree->previous, str, prefix2->str);
+ _gtk_css_selector_tree_print (gtk_css_selector_tree_get_previous (tree), str, prefix2->str);
g_string_free (prefix2, TRUE);
}
else
_gtk_css_selector_tree_match_print (const GtkCssSelectorTree *tree,
GString *str)
{
+ const GtkCssSelectorTree *parent;
+
g_return_if_fail (tree != NULL);
tree->selector.class->print (&tree->selector, str);
- if (tree->parent)
- _gtk_css_selector_tree_match_print (tree->parent, str);
+ parent = gtk_css_selector_tree_get_parent (tree);
+ if (parent != NULL)
+ _gtk_css_selector_tree_match_print (parent, str);
}
void
if (tree == NULL)
return;
- _gtk_css_selector_tree_free (tree->siblings);
+ _gtk_css_selector_tree_free (tree->sibling);
_gtk_css_selector_tree_free (tree->previous);
g_free (tree);
tree->previous = subdivide_infos (matched, tree);
if (remaining)
- tree->siblings = subdivide_infos (remaining, parent);
+ tree->sibling = subdivide_infos (remaining, parent);
return tree;
}